
你是不是也觉得动态URL像这样index.php?id=123
又丑又不利于SEO?别急,伪静态就是你的救星!今天咱们就用大白话,把PHP伪静态配置讲明白,无论是Apache还是Nginx,统统拿下!
一、Apache环境配置(.htaccess大法)
Apache用户有福了,用.htaccess
文件就能轻松搞定:
开启重写模块
先确认你的Apache已经加载了mod_rewrite
模块,在httpd.conf
里找到这行,去掉前面的#
:LoadModule rewrite_module modules/mod_rewrite.so
创建.htaccess文件
在网站根目录新建.htaccess
文件,加入以下代码:RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?$1 [L]
这段代码的意思是:如果访问的不是真实文件或目录,就把请求交给
index.php
处理。重启Apache
执行service apache2 restart
(Linux)或重启WAMP/XAMP服务,搞定!
二、Nginx环境配置(比Apache更简单)
Nginx的伪静态直接在服务器配置里设置,找到你的站点配置文件(通常是/etc/nginx/conf.d/your_site.conf
):
添加location规则
在server
段落下加入:location / { try_files $uri $uri/ /index.php?$query_string; }
重载Nginx
执行nginx -s reload
,瞬间生效!
三、PHP代码适配(通用关键步骤)
无论哪种环境,PHP都要稍作调整来解析伪静态URL。在index.php
中获取路径参数:
$request = $_SERVER['REQUEST_URI'];
// 示例:解析 /article/123 为 $_GET['id']=123
if (preg_match('/^/article/(d+)/', $request, $matches)) {
$_GET['id'] = $matches[1];
}
四、常见问题QA
Q:伪静态后出现404错误?
A:检查规则是否写错,尤其是Apache的.htaccess
文件位置是否正确。
Q:会影响网站速度吗?
A:几乎无影响,伪静态只是URL展示形式变化,实际仍是PHP处理。
Q:怎么验证是否生效?
A:访问/test/123
,看看PHP是否能接收到参数。
看完这篇,是不是觉得伪静态配置So Easy?赶紧动手试试,让你的网站URL从此高大上!如果还有疑问,欢迎评论区交流~
